#include <string.h>
#include "MensajesIRC.h"

MensajeIRC::MensajeIRC(const char* tipo){
    memset(this, 0, sizeof(*this));
    strcpy(this->tipo, tipo);
};

bool MensajeIRC::good(){ return false;}

MensajeIRC_USER::MensajeIRC_USER(const char* nombre_usuario):MensajeIRC("USER"){
    strcpy(this->nombre, nombre_usuario);
}

bool MensajeIRC_USER::good(){
    return !strcmp(tipo, "USER");
}

MensajeIRC_JOIN::MensajeIRC_JOIN(const char* nombre_canal):MensajeIRC("JOIN"){
    strcpy(this->nombre_canal, nombre_canal);
}

bool MensajeIRC_JOIN::good(){
    return !strcmp(tipo, "JOIN");
}

MensajeIRC_PRIVMSG::MensajeIRC_PRIVMSG(const char* nombre_destino, const char* mensaje):MensajeIRC("PRIVMSG"){
    strcpy(this->nombre_destino, nombre_destino);
    strcpy(this->mensaje, mensaje);
}

bool MensajeIRC_PRIVMSG::good(){
    return !strcmp(tipo, "PRIVMSG");
}

MensajeIRC_CONNECT::MensajeIRC_CONNECT(const char* nombre_destino, int puerto):MensajeIRC("CONNECT"){
    strcpy(this->nombre_destino, nombre_destino);
    this->puerto = puerto;
}

bool MensajeIRC_CONNECT::good(){
    return !strcmp(tipo, "CONNECT");
}

MensajeIRC_QUIT::MensajeIRC_QUIT(const char* mensaje):MensajeIRC("QUIT"){
    strcpy(this->mensaje, mensaje);
}

bool MensajeIRC_QUIT::good(){
    return !strcmp(tipo, "QUIT");
}


MensajeIRC_SQUIT::MensajeIRC_SQUIT(const char* nombre, const char* comentario):MensajeIRC("SQUIT"){
    strcpy(this->nombre, nombre);
    strcpy(this->comentario, comentario);
}

bool MensajeIRC_SQUIT::good(){
    return !strcmp(tipo, "SQUIT");
}

MensajeIRC_PING::MensajeIRC_PING(const char* server1, const char* server2):MensajeIRC("PING"){
    strcpy(this->server1, server1);
    strcpy(this->server2, server2);
}

bool MensajeIRC_PING::good(){
    return !strcmp(tipo, "PING");
}

MensajeIRC_PONG::MensajeIRC_PONG(const char* server1, const char* server2):MensajeIRC_PING(server1, server2){}

bool MensajeIRC_PONG::good(){
    return !strcmp(tipo, "PONG");
}

